# 多个任意类型构成的组合

#初始化的方式
from typing import List


girl=['alex',23,'W',170]
list=([1,2,3,4,5])


#查看列表里面元素的类型
print( type(girl[0]) )
print( type(girl[1]))

#取列表里面的一个元素,下标法

print(girl[0])


#切片取元素 
print(list[0:3])  # [1, 2, 3]  
print(list[0:3:1]) #[1, 2, 3]参数3代表的是间隔 ,间隔1个相当于不改变
print(list[0:3:2]) #[1,3]
print(list[0:3:3]) #[1]
print(list[0:3:4]) #[1]


print(list[-1])  # 5 从后往前取,最后一位的索引是 -1 ,倒数第二位为-2 
print(list[-3:-1]) # [3, 4] ,索引编号小的在前面

print(list[1:]) # 从第二个字符开始到结束
print(list[:-2]) # 从第一个字符开始到 倒数第二个字符,不包含倒数第二个


#追加,删除
#pop() 删除之后,会返回被删除的元素
info=['alex','apple','Lucy']
info.append('good')
print(info[:])
print(info)

info.pop()  #堆栈的属性:   后进,先出 ,先进,后出
info.pop()  #堆栈的属性
print(info)

info.pop(0)  # 队列的属性 ,后进,后出;先进,先出
print(info)


#单纯的删除,不返回被删除的元素
ll=['apple','parare','water']
print(ll)
del ll[0]
print(ll)
ll.remove('water')  #没有返回值
print(ll)

#求长度 len()

love=['study','eat','look']
print(len(love)) #求列表的长度
print('eat' in love) #判断某个元素是否在列表中

#列表的插入
hobbies=['play','eat','sleep','study','eat','eat']

#指定的位置,插入一个元素
hobbies.insert(0,'look')
print(hobbies)
#指定的位置,插入一个列表
hobbies.insert(1,['weak1','weak2','weak3'])
print(hobbies)
#统计某一个元素出现的次数
print(hobbies.count('eat'))
#扩展,直接在列表的最后,把要扩展的列表的元素都插入到列表的后面
hobbies.extend(['weak1','weak2','weak3'])
print(hobbies)

#列表的清空
l=hobbies.copy()
hobbies.clear()
print(hobbies)
print(l)


#列表元素的翻转
num=[1,2,3,4,5]
num.reverse()
print(num)

#列表元素的排序
name=['root','test','app']
name.sort(reverse=True)
print(name)


#对字符串进行排序
str='hello'
print(' '.join(sorted(str)))

#根据字符串的长度进行排序
strings=['apple','app','good','name']
strings.sort(key=len)
print(strings)

sorted(strings,key=len)
print(strings)

#根据字符串的值进行排序
ss=[1,32,2,90,100]
ss.sort(key=int) 
print(ss)


